In order to make high data rate interactive services such as video conferencing available to more residential and small business customers, high-speed data communication paths are required. Although fiber optic cable is the preferred transmission media for such high data rate services, it is not readily available in existing communications networks, and the expense of installing fiber optic cable is prohibitive. Current telephone wiring connections, which consist of copper twisted-pair media, are not designed to support the data rates, or bandwidth, required for interactive services. Asymmetric Digital Subscriber Lines (ADSL) technology has been developed to increase the effective bandwidth of existing twisted-pair connections, allowing interactive services to be provided without requiring the installation of new fiber optic cable.
Discrete Multi-Tone (DMT) is a multicarrier technique that divides the available bandwidth of twisted-pair connections into many subchannels, or bins. The DMT technique has been implemented in ADSL standard T1.413 for use in ADSL systems. In ADSL, DMT is used to generate 250 separate 4.3125 kHz subchannels from 26 kHz to 1.1 MHz for downstream transmission to the end user, and 26 subchannels from 26 kHz to 138 kHz for upstream transmission by the end user.
The rate at which data is to be transmitted is a function of whether or not a device is implemented as an ADSL central office terminal (ATU-C) or an ADSL remote terminal (ATU-R). According to the ADSL standard T1.413, a device used in an ADSL communications system is designated as either an ATU-C or an ATU-R before digital communications can be initiated.
Initialization of an ADSL transceiver requires the execution of several initialization steps which, in terms of modern semiconductor device operation, take a long time (several seconds). Individual initialization steps include activation and acknowledgment, transceiver training, channel analysis, exchange, and steady state. Individual activation states specify functions necessary to establish a communications channel between a local and a non-local ADSL transceiver.
Each initialization step has numerous individual activation states which when combined comprise the individual initialization step. The execution of the initialization steps, and more specifically the associated activation states require a long initialization time. In certain instances, where synchronization to a specific activation state would be desirable, it would be advantageous for the current state of the ADSL transceiver to be available externally. For example, such synchronous operation would be desirable for interfacing to a debug/development tool, or for sequencing other externally controllable events to an individual activation state of the transceiver.
Prior art teaches several methods of specifying current state activity for modern semiconductor devices such as microprocessors. One such method requires the "polling" of a device in order to identify a current state of operation. Polling generally entails performing a read access to the device having a state which is desired to be known. Such a scheme requires continuous polling in order to have resolution such that the beginning of a transceiver state can be recognized. Continuous polling limits the bandwidth of the device doing the polling. For example, an external processor may be able to poll only one device where it is necessary to identify precisely where a specific state is entered. Therefore, there is a trade-off between the amount of resolution that is attainable, and the number of devices a polling device can control.
A second method of determining the state of a given device is accomplished by performing a breakpoint-type function. The breakpoint-type function is used to monitor an address bus, or a state machine for a specific identifying value. Once a breakpoint is identified, internal hardware or software of the device being polled by a host can continuously monitor for the occurrence of a particular address or state. For example, if in a device using firmware, it is known that a specific state begins at an address location called "ADDR", a register could be set to the value of ADDR, which is in turn compared to the address bus of the device being polled. When the address bus is equal to the value of ADDR, an interrupt breakpoint would be generated. This requires knowing where precisely, in code, a state location desired to be identified resides, as well as the additional overhead of the hardware needed to perform the breakpoint. In addition, the generation of breakpoints interrupts the function of the device being polled, which delays the overall operation of the device.
Therefore, it would be desirable to have state information provided in a time and hardware efficient manner that would allow the synchronization of devices controllable external to the device without requiring the host to generate an interrupt and without the host needing to monitor the code.